package nio.channel;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;

/**
 * @author Summerday
 */
public class Client {

    public static void main(String[] args) throws IOException {
        // 开启客户端的channel
        SocketChannel sc = SocketChannel.open();
        // 手动设置为非阻塞模式
        sc.configureBlocking(false);
        // 发起连接
        sc.connect(new InetSocketAddress(8081));
        // 手动判断保证连接的建立
        while(!sc.isConnected()){
            // 如果多次连接都没有脸上,会认为此次连接无法建立
            sc.finishConnect();
        }
        // 发送数据
        sc.write(ByteBuffer.wrap("hello , i am client".getBytes()));

        // 读取数据
        ByteBuffer buffer = ByteBuffer.allocate(1024);
        sc.read(buffer);
        byte[] bs = buffer.array();
        System.out.println(new String(bs, 0, buffer.position()));
        // 关闭通道
        sc.close();
    }
}
